function animation(obj, target,callback) { //调用的时候用callback()
    clearInterval(obj.timer) //清除之前的定时器，只保留一个定时器
    obj.timer = setInterval(function () {
        //1、把步长值写道定时器中
        // var step = Math.ceil((target - obj.offsetLeft) / 10  )//向上取整
        //加一个判断，解决后退的时候能够准确到达位置
        var step = (target - obj.offsetLeft) / 10;
        step = step > 0 ? Math.ceil(step) : Math.floor(step)
        //加个判断条件，让它停下来
        if (obj.offsetLeft == target) {
            clearInterval(obj.timer)
            //3、当定时器结束的时候判断这个回调函数有没有传进来，有的话就执行这个回调函数
            // if(callback){
                // callback()
                
            // }
            callback && callback() //等同于上面的代码  意思是当callback为真的话就执行callback()，否则不执行
        } else {
            //2、每次加1  这个步长值改为一个慢慢变小的值
            obj.style.left = obj.offsetLeft + step + 'px';
        }
    }, 30)
}